Systems and methods for synchronizing visual content

ABSTRACT

Multiple image capture devices may individually generate time information and capture images. Individual image captures devices may receive time information of other image capture device(s). Individual image capture devices may transmit its time information to other image capture device(s) independent of reception of the time information of other image capture device(s). Individual image capture devices may generate time synchronization information for the captured images based on its time information and the received time information of other image capture device(s). Images captured by different image capture devices may be time-synchronized based on at least one of generated time-synchronization information.

FIELD

This disclosure relates to systems and methods for visual contentcaptured by multiple image capture devices based on transmission of timeinformation of the multiple image capture devices.

BACKGROUND

Multiple image capture devices may capture visual content (images,videos) for a single event and/or related events. Manually synchronizingthe visual content captured by the multiple image capture devices may bedifficult and/or time consuming.

SUMMARY

This disclosure relates to synchronizing visual content. Multiple imagecapture devices may individually include an optical element, an imagesensor, a clock, a transmitter, and a receiver. The optical element mayguide light within a field of view to the image sensor. The image sensormay generate image output signals based on light that becomes incidentthereon. The image output signals may convey image information thatdefines images. The clock may provide time information of a respectiveimage capture device. Individual image capture devices may receive timeinformation of other image capture device(s) using the receiver, andtransmit the time information of the respective image capture deviceusing the transmitter independent of reception of the time informationof other image capture device(s). Individual image capture devices maycapture a set of images during a capture duration based on the imageoutput signals, and generate time synchronization information for theset of images based on the time information of the respective individualimage capture device, the time information of the other image capturedevice(s), and/or other information. Multiple images from captured setsof images may be time-synchronized based on at least one of generatedtime-synchronization information.

An image capture device may include one or more of an optical element,an image sensor, a clock, a transmitter, a receiver, a processor, and/orother components. The optical element may be configured to guide lightwithin a field of view to the image sensor. The image sensor may beconfigured to generate image output signals based on light that becomesincident thereon. The image output signals may convey image informationthat defines images. The clock may be configured to provide timeinformation of a respective image capture device. The transmitter may beconfigured to transmit information. The receiver may be configured toreceive information.

The processor(s) of the image capture device may be configured bymachine-readable instructions. Executing the machine-readableinstructions may cause the processor(s) to facilitate synchronization ofvisual content. The machine-readable instructions may include one ormore computer program components. The computer program components mayinclude one or more of a reception component, a transmission component,a capture component, a synchronization component, and/or other computerprogram components.

The reception component may be configured to receive time information ofother image capture device(s) using the receiver. The receptioncomponent may receive time information of other image capture device(s)during operation of the respective image capture device to captureimage(s). The reception component may receive time information of otherimage capture device(s) during non-operation of the respective imagecapture device to capture image(s).

The transmission component may be configured to transmit the timeinformation of the respective image capture device using thetransmitter. Transmission of the time information of the respectiveimage capture device may be independent of reception of the timeinformation of the other image capture device(s).

The capture component may be configured to capture a set of imagesduring a capture duration based on the image output signals. The set ofimages may include one or more images. The image(s) may include videoframes of a video.

The synchronization component may be configured to generate timesynchronization information for the set of images based on the timeinformation of the respective image capture device, the time informationof the other image capture device(s), and/or other information.

The multiple image capture devices may include a first image capturedevice, a second image capture device, and/or other image capturedevice(s). Captured sets of images may include a first set of imagescaptured by the first image capture device during a first captureduration, a second set of images captured by the second image capturedevice during a second capture duration, and/or other set(s) of imagescapture by other image capture device(s) during other captureduration(s). Generated time-synchronization information may includefirst time synchronization information generated by the first imagecapture device, second time synchronization information generated by thesecond image capture device, and/or other time synchronizationinformation generated by other image capture device(s). Multiple imagesfrom the captured sets of images may be time-synchronized based on atleast one of the generated time-synchronization information.

In some implementations, the multiple image capture devices may furtherinclude a third image capture device. The captured sets of images mayfurther include a third set of images captured by the third imagecapture device. The generated time-synchronization information mayfurther include third time synchronization information generated by thethird image capture device.

In some implementations, the first capture duration for the first set ofimages may overlap with the second capture duration for the second setof images. In some implementations, the first capture duration for thefirst set of images may be different from the second capture durationfor the second set of images.

In some implementations, time-synchronized images may be used togenerate a video edit including images captured by different imagecapture devices. The video edit may be generated by one of the imagecapture devices and/or a server after the capture of the sets of images.

In some implementations, transmission of the time information by themultiple image capture devices may be staggered such that the firstimage capture device transmits time information of the first imagecapture device at a first time and the second image capture devicetransmits time information of the second image capture device at asecond time different from the first time.

In some implementations, time information of the first image capturedevice may include a time of the first image capture device, anidentifier of the first image capture device, and/or other information.Time information of the second image capture device may include a timeof the second image capture device, an identifier of the second imagecapture device, and/or other information.

In some implementations, the first time synchronization information isgenerated by the first image capture device based on the time of thesecond image capture device, the identifier of the second image capturedevice, and/or other information. In some implementations, the firsttime synchronization information is generated by the first image capturedevice based on a difference between the time of the first image capturedevice and the time of the second image capture device, the identifierof the second image capture device, and/or other information.

In some implementations, an offset between the time of the first imagecapture device and the time of the second image capture device may bedetermined based on the first time synchronization information generatedby the first image capture device and the second first timesynchronization information generated by the second image capturedevice. In some implementations, the offset between the time of thefirst image capture device and the time of the second image capturedevice may be determined based on an average of a first offset indicatedby the first time synchronization information and a second offsetindicated by the second time synchronization information.

In some implementations, the first time synchronization informationgenerated by the first image capture device may be stored within ametadata track of a first video. The first video may include the firstset of images captured by the first image capture device.

These and other objects, features, and characteristics of the systemand/or method disclosed herein, as well as the methods of operation andfunctions of the related elements of structure and the combination ofparts and economies of manufacture, will become more apparent uponconsideration of the following description and the appended claims withreference to the accompanying drawings, all of which form a part of thisspecification, wherein like reference numerals designate correspondingparts in the various figures. It is to be expressly understood, however,that the drawings are for the purpose of illustration and descriptiononly and are not intended as a definition of the limits of theinvention. As used in the specification and in the claims, the singularform of “a,” “an,” and “the” include plural referents unless the contextclearly dictates otherwise.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a system for synchronizing visual content.

FIG. 2 illustrates a method for synchronizing visual content.

FIG. 3A illustrates an example scenario for synchronizing visualcontent.

FIG. 3B illustrates an example scenario for synchronizing visualcontent.

FIG. 3C illustrates an example scenario for synchronizing visualcontent.

FIG. 4 illustrates an example flow for synchronizing visual content.

FIG. 5 illustrates example exchange of time information during captureof visual content.

DETAILED DESCRIPTION

FIG. 1 illustrates system 10 for synchronizing visual content. Thesystem 10 may include or be part of an image capture device. System 10may include one or more of a processor 11, an interface 12 (e.g., bus,wireless interface), an electronic storage 13, an optical element 14, animage sensor 15, a clock 16, a transmitter 17, a receiver 18, and/orother components. The optical element 14 may guide light within a fieldof view to the image sensor 15. The image sensor 15 may generate imageoutput signals based on light that becomes incident thereon. The imageoutput signals may convey image information that defines images. Theclock 16 may provide time information of an image capture device. Thetime information of the image capture device may be transmitted usingthe transmitter 17. Time information of other image capture device(s)may be received using the receiver 18. The transmission of the timeinformation of the image capture device may be independent of receptionof the time information of other image capture device(s). A set ofimages may be captured during a capture duration based on the imageoutput signals. Time synchronization information for the set of imagesmay be generated based on the time information of the image capturedevice, the time information of the other image capture device(s),and/or other information. Multiple images from sets of images capturedby multiple image capture devices may be time-synchronized based on thegenerated time-synchronization information.

The electronic storage 13 may include electronic storage medium thatelectronically stores information. The electronic storage 13 may storesoftware algorithms, information determined by processor 11, informationreceived remotely, and/or other information that enables system 10 tofunction properly. For example, the electronic storage 13 may storeinformation relating to the image sensor 15, information relating toimage output signals, image information, information relating to images,clock 16, time information, time synchronization information, and/orother information.

The optical element 14 may include instrument(s), tool(s), and/or mediumthat acts upon light passing through the instrument(s)/tool(s)/medium.For example, the optical element 14 may include one or more of lens,mirror, prism, and/or other optical elements. The optical element 14 mayaffect direction, deviation, and/or path of the light passing throughthe optical element 14. The optical element 14 may be configured toguide light within a field of view to the image sensor 15. The field ofview of the optical element 14 may refer to the extent of the observableworld that is seen through the optical element 14. The field of view ofthe optical element 14 may include the angle (e.g., vertical angle,horizontal angle, diagonal angle) at which light is received and passedon by the optical element 14.

The image sensor 15 may include sensor(s) that converts received lightinto output (electrical) signals. For example, the image sensor 15 mayinclude one or more of a charge-coupled device sensor, an active pixelsensor, a complementary metal-oxide semiconductor sensor, an N-typemetal-oxide-semiconductor sensor, and/or other image sensors. The imagesensor 15 may be configured to generate image output signals conveyimage information and/or other information. The image information maydefine images based on light that becomes incident on the image sensor15.

The clock 16 may be configured to provide time information of an imagecapture device. The clock 16 may include a hardware clock, a softwareclock, and/or other clock mechanisms. An image capture device may referto equipment used to capture one or more images. An image capture devicemay be a standalone device or a multi-purpose device. For example, animage capture device may include a standalone camera or a camera portionof a mobile device (e.g., camera portion of a smartphone/tablet). Theimage capture device for which the clock 16 provides time informationmay include some or all of the components of the system 10. The system10 may include the image capture device for which the clock 16 providestime information.

Time information provided by the clock 16 may characterize the time atwhich the image capture device operates. The time information providedby the clock 16 may define the time at which the image capture deviceoperates and/or may be used to determine the time at which the imagecapture device operates. The time at which the image capture deviceoperates may be set based on a default (e.g., default time of the imagecapture device set by a manufacturer/producer of the image capturedevice), based on user input (e.g., user input that specifies the timeof the image capture device), based on location (e.g., time of the imagecapture device corresponding to the time of the time zone in which theimage capture device is located), based on communication with otherdevice(s) (e.g., time of the image capture device synchronizes with timeof a server), and/or based on other information.

The transmitter 17 may refer to equipment used to generate and/ortransmit electromagnetic waves carrying information. The transmitter 17may be part of or separate from a device including the receiver 18. Thetransmitter 17 may be configured to transmit information via theelectromagnetic waves. For example, the transmitter 17 may generateand/or transmit time information of an image capture device and/or otherinformation via the electromagnetic waves. The transmitter 17 maygenerate and/or transmit electromagnetic waves based on one or morewireless communication technologies, such as WiFi and/or Bluetooth. Insome implementations, the time information transmitted by thetransmitter 17 may include time of the respective image capture device,an identifier of the respective image capture device, and/or otherinformation.

The receiver 18 may refer to equipment used to receiver and/or convertelectromagnetic waves carrying information. The receiver 18 may be partof or separate from a device including the transmitter 17. The receiver18 may be configured to receive information via the electromagneticwaves. For example, the receiver 18 may receive and/or convert timeinformation of an image capture device and/or other information via theelectromagnetic waves. The receiver 18 may receive and/or convertelectromagnetic waves based on one or more wireless communicationtechnologies, such as WiFi and/or Bluetooth. In some implementations,the time information received and/or converted by the receiver 16 mayinclude time of the image capture device that transmitted the timeinformation, an identifier of the image capture device that transmittedthe time information, and/or other information.

The processor 11 may be configured to provide information processingcapabilities in system 10. As such, processor 11 may comprise one ormore of a digital processor, an analog processor, a digital circuitdesigned to process information, a central processing unit, a graphicsprocessing unit, a microcontroller, an analog circuit designed toprocess information, a state machine, and/or other mechanisms forelectronically processing information. Processor 11 may be configured toexecute one or more machine readable instructions 100 to facilitatesynchronization of visual content. Machine readable instructions 100 mayinclude one or more computer program components. Machine readableinstructions 100 may include one or more of a reception component 102, atransmission component 104, a capture component 106, a synchronizationcomponent 108, and/or other computer program components.

The reception component 102 may be configured to receive timeinformation of other image capture device(s) and/or other information.The reception component 102 may receive time information of other imagecapture device(s) and/or other information using the receiver 18 and/orother components of the system 10. The reception component 102 mayreceive time information of other image capture device(s) duringoperation of a respective image capture device to capture image(s). Thatis, the reception component 102 of/for an image capture device mayreceive time information of other image capture device while the imagecapture device is operating to capture one or more images (e.g.,operating to capture an image, multiple images, video frame(s) of avideo). Such reception of time information of other image capturedevices may enable the system 10 to record time information of otherimage capture devices while the image capture device is capturingimage(s).

The reception component 102 may receive time information of other imagecapture device(s) during non-operation of the respective image capturedevice to capture image(s). That is, the reception component 102 of/foran image capture device may receive time information of other imagecapture device while the image capture device is not operating tocapture one or more images (e.g., operating in standby mode, turned onyet not recording images). Such reception of time information of otherimage capture devices may enable the system 10 to record timeinformation of other image capture devices while the image capturedevice is not capturing image(s).

The transmission component 104 may be configured to transmit the timeinformation of a respective image capture device and/or otherinformation. The transmission component 104 may transmit timeinformation of the respective image capture device and/or otherinformation using the transmitter 17 and/or other components of thesystem 10. The transmission component 14 may transmit the timeinformation of the respective image capture device independent ofreception of the time information of the other image capture device(s)by the reception component 102. That is, the transmission component 104of/for an image capture device may transmit time information of theimage capture device regardless of whether the reception component 102of/for the image capture device has received time information of otherimage capture device(s). Such transmission of time information of theimage capture device may enable the system 10 to provide timeinformation of the image capture device without having knowledge of theother image capture device(s). For example, the transmission component104 of/for an image capture device may broadcast (e.g., one to manybroadcast) the time information of the image capture device withoutdetermining whether another image capture device is within proximity ofthe image capture device.

The capture component 106 may be configured to capture a set of imagesduring a capture duration based on the image output signals. The set ofimages may include one or more images. The image(s) within the set ofimages may be stored individually as standalone images, stored as agroup of images, stored as video frames of a video, and/or other images.The capture component 106 may capture visual content of the set ofimages during the capture duration based on the image output signals.The visual content may refer to media content that may be consumed asone or more images and/or one or more videos. The visual content of theset of images may refer to content of image(s) that are visible and/orcapable of being presented/displayed on a display. For example, thevisual content of the images captured by the capture component 106 mayinclude pixels of varying colors, brightness, numbers, groupings, and/orother visible characteristics captured based on the image outputsignals.

In some implementations, information defining the images captured by thecapture component 106 may be stored and/or transferred in a bitstream.Information defining the images may be stored and/or transferred in thebitstream in the order that they are captured. For example, the capturecomponent 106 may capture video frames 101, 102, 103, 104, 105, 106 of avideo during a capture duration based on the image output signals. Thevideo frames may be stored and/or transferred in the bitstream asfollows: video frame 101, video frame 102, video frame 103, video frame104, video frame 105, and video frame 106.

The synchronization component 108 may be configured to generate timesynchronization information for the set of images based on the timeinformation of the respective image capture device, the time informationof the other image capture device(s), and/or other information. Timesynchronization information may refer to information which may be usedto synchronize images captured by different image capture devices. Timesynchronization information may include information that characterizesdifference in operating times of different image capture devices.

For example, time synchronization information generated for a set ofimages captured by an image capture device may include one or more of anidentifier of the image capture device, a time of the image capturedevice (e.g., time at which the capture of the set of images beganand/or ended, time at which the image capture device is operating), anidentifier of another image capture device, one or more times of theother image capture device received for/by the image capture device,and/or other information.

For example, two image capture devices (image capture device A, imagecapture device B) may be capturing images defining video frames ofvideos. The two image capture devices may individually be transmittingits own time information while receiving the time information of theother image capture device. The time synchronization for the set ofimages captured by the image capture device A may be generated based onthe time of the image capture device B (e.g., local time B received bycamera A), the identifier of the image capture device B (e.g., camera BID), and/or other information. As another example, the timesynchronization for the set of images captured by the image capturedevice A may be generated based on a difference between the time of theimage capture device A (e.g., local time A) and the time of the imagecapture device B (e.g., local time B, the identifier of the imagecapture device B (e.g., camera B ID), and/or other information.

In some implementations, some or all of the time synchronizationinformation may be stored within one or more storage. For example,referring to the example of two image capture devices (image capturedevice A, image capture device B) capturing images defining video framesof videos, a start storage of the image capture device A may includeinformation on the time at which the image capture device A is operating(local time A), the identifier of the image capture device A (e.g.,camera A ID), and/or other information. That is, the start storage ofthe image capture device A may include information defining thefollowing: local time A; camera A ID. Similarly, the start storage ofthe image capture device B may include information defining thefollowing: local time B; camera B ID.

A streaming storage of the image capture device A may includeinformation defining video frames of the video (e.g., video A) beingcaptured by the image capture device A, information on the identifier ofthe image capture device B (e.g., camera B ID), and informationcharacterizing time of the image capture device B received by the imagecapture device A (e.g., local time B).

For example, the image capture device A may capture two video frames(e.g., video frames 101, 102), receive a local time and identifier ofthe image capture device B (e.g., camera B ID-local time B), capturethree video frames (e.g., video frames 103, 104, 105), and then receivea local time and identifier of the image capture device B (e.g., cameraB ID-local time B). The information captured and received by the imagecapture device A may be stored in the order in which information wascaptured such that the streaming storage of the image capture device Aincludes information defining the following in order: video frame 101,video frame 102, camera B ID-local time B, video frame 103, video frame104, video frame 105, and camera B ID-local time B. Alternative or inaddition, the streaming storage of the image capture device A mayinclude information defining the following in order: video frame 101,video frame 102, camera B ID-delta of local time A and local time B,video frame 103, video frame 104, video frame 105, and camera B ID-deltaof local time A and local time B. That is, rather than storing the localtime of the other image capture device, the different between the localtimes of the image capture devices may be stored.

Similarly, the image capture device B may capture four video frames(e.g., video frames 201, 202, 203, 204), receive a local time andidentifier of the image capture device A (e.g., camera A ID-local timeA), capture one video frame (e.g., video frame 205), and then receive alocal time and identifier of the image capture device A (e.g., camera AID-local time A). The information captured and received by the imagecapture device B may be stored in the order in which information wascaptured such that the streaming storage of the image capture device Bincludes information defining the following in order: video frame 201,video frame 202, video frame 203, video frame 204, camera A ID-localtime A, video frame 205, and camera A ID-local time A. Alternative or inaddition, the streaming storage of the image capture device B mayinclude information defining the following in order: video frame 201,video frame 202, video frame 203, video frame 204, camera A ID-delta oflocal time B and local time A, video frame 205, and camera A ID-delta oflocal time B and local time A. That is, rather than storing the localtime of the other image capture device, the different between the localtimes of the image capture devices may be stored. Other timesynchronization information and storage of time synchronizationinformation are contemplated.

In some implementations, time synchronization information may be storedwithin the same container as the set of images. For example, the set ofimages may be form video frames of a video, and the time synchronizationinformation for the set of images may be stored within a metadata trackof the video. In some implementations, time synchronization informationmay be stored within a file/track specifically associated with time. Forexample, time synchronization information may be stored within atimecode track of the set of images/video including the set of images.

FIGS. 3A-3C illustrate example scenarios for synchronizing visualcontent. The scenarios illustrated in FIGS. 3A-3C may include a camera A302, a camera B 304, a camera C 306, and/or other cameras/image capturedevices. The scenarios illustrated in FIGS. 3A-3C may be separate fromeach other or related to each other. For example, the scenariosillustrated in FIGS. 3A-3C may show relative positioning of the cameras302, 304, 306 at three separate locations and/or three separateinstances of capturing visual content. The scenarios illustrated inFIGS. 3A-3C may show relative positioning of the cameras 302, 304, 306at a single location and/or a single instance. For example, the cameras302, 304, 306 may be capturing videos near each, with the cameras 302,304, 306 initially positioned as shown in FIG. 3A, then changed to thepositions shown in FIG. 3B, and then changed to the positions shown inFIG. 3C.

One or more of the cameras 302, 304, 306 may individually include one ormore of the components of the system 10 (shown in FIG. 1). For example,one or more of the cameras 302, 304, 306 may individually include one ormore of an optical element, an image sensor, a clock, a transmitter, areceiver, a processor, computer program components, and/or othercomponents. One or more of the cameras 302, 304, 306 may perform some orall of the functions of the system 10.

For example, the camera A 302 may capture a first set of images during afirst capture duration. The camera B 304 may capture a second set ofimages during a second capture duration. The camera C 306 may capture athird set of images during a third capture duration. Two or more of thecapture durations of the cameras 302, 304, 306 may be the same ordifferent. For example, the camera A 302 and the camera B 304 maycapture sets of images during the same duration of time or duringdifferent durations of time. Two or more of the capture durations of thecameras 302, 304, 306 may overlap with each other. For example, thefirst capture duration of the camera A 302 and the second captureduration of the camera B 304 may overlap with each other.

The cameras 302, 304, 306 may individually transmit its time informationusing its transmitter. The cameras 302, 304, 306 may individuallyreceive time information of other cameras using its receiver. Thetransmission of time information by the cameras 302, 304, 306 may beindependent of reception of the time information of other cameras. Forexample, the camera A 302 may transmit its time information regardlessof whether the camera A 302 has receive time information of the camera B304 or the camera C 306. The transmission of the time information by thecameras 302, 304, 306 may not be directed to any particular cameras.That is, the cameras 302, 304, 306 may broadcast its time information toall cameras within range of the broadcast. Whether the cameras 302, 304,306 receive time information of other camera(s) may depend on geographicproximity of the cameras 302, 304, 306.

Referring to FIG. 3A, the cameras 302, 304 may individually transmit itstime information and receive other camera's time information based onthe cameras 302, 304 being within range of communication. The camera C306 may not be within range of communication of the cameras 302, 304.The camera C 306 may transmit its time information, but the cameras 302,304 may not receive the time information of the camera C 306. The cameraC 306 may not receive the time information of the cameras 302, 304.Referring to FIG. 3B, the cameras 302, 304, 306 may individuallytransmit its time information and receive other camera's timeinformation based on the cameras 302, 304, 306 being within range ofcommunication. Referring to FIG. 3C, the camera C 306 may be withinrange of communication of the cameras 302, 304. The cameras 302, 304 maynot be within range of communication. The cameras 302, 306 mayindividually transmit its time information and receive other camera'stime information. The cameras 304, 306 may individually transmit itstime information and receive other camera's time information. Thecameras 302, 304 may not receive other camera's time information.

In some implementations, transmission of the time information bydifferent image capture devices may be staggered. For example, thecamera 302 may transmits its time information at a first time and thecamera 304 may transmit its time information at a second time differentfrom the first time. The staggered transmission of time information bydifferent image capture devices may reduce conflict in transmissionand/or reception of time information by the image capture devices.

The cameras 302, 304, 306 may individually generate time synchronizationinformation for the respective sets of images captured by the cameras302, 304, 306 based on the time information of the respective cameras302, 304, 306, the time information of the other camera(s) received bythe cameras 302, 304, 306, and/or other information. For example,referring to FIG. 3A, the camera A 302 may generate first timesynchronization information for the first set of images captured by thecamera A 302 based on the time information of the camera A 302 and thereceived time information of the camera B 304, and/or other information.The camera B 304 may generate second time synchronization informationfor the second set of images captured by the camera B 304 based on thetime information of the camera B 304 and the received time informationof the camera A 302, and/or other information.

Referring to FIG. 3B, the camera A 302 may generate first timesynchronization information for the first set of images captured by thecamera A 302 based on the time information of the camera A 302, thereceived time information of the camera B 304, the received timeinformation of the camera C 306, and/or other information. The camera B304 may generate second time synchronization information for the secondset of images captured by the camera B 304 based on the time informationof the camera B 304, the received time information of the camera A 302,the received time information of the camera C 306, and/or otherinformation. The camera C 306 may generate third time synchronizationinformation for the third set of images captured by the camera C 306based on the time information of the camera C 306, the received timeinformation of the camera A 302, the received time information of thecamera B 304, and/or other information.

Referring to FIG. 3C, the camera A 302 may generate first timesynchronization information for the first set of images captured by thecamera A 302 based on the time information of the camera A 302, thereceived time information of the camera C 306, and/or other information.The camera B 304 may generate second time synchronization informationfor the second set of images captured by the camera B 304 based on thetime information of the camera B 304, the received time information ofthe camera C 306, and/or other information. The camera C 306 maygenerate third time synchronization information for the third set ofimages captured by the camera C 306 based on the time information of thecamera C 306, the received time information of the camera A 302, thereceived time information of the camera B 304, and/or other information.

The cameras 302, 304, 306 may store individually time information fromreceived from other cameras. For example, after a period of time ofcapturing videos, the cameras 302, 304, 306 may individually includeimage information defining captured images, audio information definingcaptured audio, and time information of other cameras. The imageinformation, the audio information, and the time information may bestored at or based on the time they were captured, generated, and/orreceived. For example, the camera A 302 may store image information andaudio information during video capture at the moment or in the orderthat the image information and the audio information iscaptured/generated by the camera A 302. The camera A 302 may store timeinformation of the cameras 304, 306 at the moment or in the order thatthe time information is received by the camera A 302.

Multiple images from the sets of images captured by different imagecapture devices may be time-synchronized based on at least one of thegenerated time-synchronization information. Time-synchronization ofimages may refer to ordering and/or arrangement of images based on thetime of capture. Time-synchronization of images may includedetermination of which images were captured at the same time, whichimages were captured before other images, and/or which images werecaptured after other images. Time-synchronization of images may includedetermination of time relationships between images that were captured bydifferent image capture devices.

For example, multiple images from the sets of images captured by thecameras 302, 304, 306 may be time-synchronized based on at least one ofthe time-synchronization information generated by the cameras 302, 304,306. Referring to FIG. 3A, multiple images from the first set of imagescaptured by the camera A 302 and the second set of images captured bythe camera B 304 may be time-synchronized based the first timesynchronization generated by the camera A 302, the second timesynchronization information generated by the camera B 304, and/or otherinformation. Referring to FIG. 3B, multiple images from the first set ofimages captured by the camera A 302, the second set of images capturedby the camera B 304, and/or the third set of images captured by thecamera C 306 may be time-synchronized based the first timesynchronization generated by the camera A 302, the second timesynchronization information generated by the camera B 304, the thirdtime synchronization information generated by the camera C 306, and/orother information.

Referring to FIG. 3C, the first time synchronization informationgenerated by the camera A 302 may be used to time-synchronize multipleimages from the first set of images captured by the camera A 302 and thethird set of images captured by the camera C 306. The second timesynchronization information generated by the camera B 304 may be used totime-synchronize multiple images from the second set of images capturedby the camera B 304 and the third set of images captured by the camera C306. The third time synchronization information generated by the cameraC 306 may be used to time-synchronize multiple images from the first setof images captured by the camera A 302, the second set of imagescaptured by the camera B 304, and the third set of images captured bythe camera C 306.

The generated time-synchronization information may enable post-capturetime-synchronization of multiple images from sets of images captured bydifferent image capture devices. That is, rather than time-synchronizingimages as they are captured (live time-synchronization), the images maybe time-synchronized after the images have been captured and stored. Thegenerated time-synchronization information may enabletime-synchronization of images by one or more images capture devicesand/or other devices. For example, referring to FIG. 3C, multiple imagesfrom the sets of images captured by the camera 302, 304, 306 may betime-synchronized by the camera C 306. Alternatively or in addition, thegenerated time-synchronization information may be provided to anotherdevice (e.g., server), and the multiple images from the sets of imagescaptured by the camera 302, 304, 306 may be time-synchronized by theother device.

In some implementations, time-synchronized images may be used togenerate a video edit including images captured by different imagecapture devices. A video edit may include a particular arrangementand/or manipulation of some or all of the images captured by differentimage capture devices. For example, a video edit may include particularimages captured by different image capture devices to provide a summaryof the images captured by the different image capture devices. Asanother example, a video edit may include images of a subject, anactivity, an event, and/or other thing of interest captured by thedifferent image capture devices. The video edit may be generated by oneof the image capture devices and/or another device (e.g., server) afterthe capture of the sets of images. For example, images captured bydifferent image capture devices and time synchronization informationgenerated by different image capture devices may be uploaded to aserver. The time synchronization information may enable time-accurateunderstanding of how different images/groups of images are related toeach other in time, and enable cloud-based editing of images/videoscaptured by different image capture devices.

FIG. 4 illustrates an example flow 400 for synchronizing visual content.The visual content (e.g., content of images, videos) may be captured byan image capture device A 410 and an image capture device B 430. Forexample, at step 412, the image capture device A 410 may capture animage set A. At step 432, the image capture device B 430 may capture animage set B. At step 414, the image capture device A 410 may generatetime information A of the image capture device A. At step 434, the imagecapture device B 430 may generate time information B of the imagecapture device B. At step 416, the image capture device A 410 maytransmit the time information A. At step 436, the image capture device B430 may transmit the time information B. At step 418, the image capturedevice A 410 may receive the time information B. At step 438, the imagecapture device B 430 may receive the time information A. At step 420,the image capture device A 410 may generate time synchronizationinformation A for the image set A. The time synchronization informationA may be generated based on the time information A, the received timeinformation B, and/or other information. At step 440, the image capturedevice B 413 may generate time synchronization information B for theimage set B. The time synchronization information B may be generatedbased on the time information B, the received time information A, and/orother information.

FIG. 5 illustrates example exchange of time information during captureof visual content. A box 502 may represent a capture duration duringwhich an image capture device A captures images, such as video frames ofa video A. A box 504 may represent a capture duration during which animage capture device B captures images, such as video frames of a videoB. A box 506 may represent a capture duration during which an imagecapture device C captures images, such as video frames of a video C.

The capture duration for the video A (represented by the box 502) may bethe same as the capture duration for the video B (represented by the box504). The capture duration for the video A may start and end at the sametime as the capture duration for the video B. The capture duration forthe video C (represented by the box 506) may be different from thecapture duration for videos A and B. The capture duration for the videoC may start and end at different times from the capture durations forthe videos A and B. The length of the capture duration for the video Cmay be shorter than the lengths of the capture durations for the videosA and B.

The time of the image capture devices A, B, and C may not besynchronized. For example, the time of the image capture device A may bethree minutes later than the time of the image capture device B. Thetime of the image capture device C may be two minutes later than thetime of the image capture device B. For instance, when the clock of theimage capture device A is at 1:03:00, the clock of the image capturedevice B may be at 1:00:00, and the clock of the image capture device Cmay be at 1:02:00. The different times at which the clocks of the imagecapture devices A, B, and C operate may result in images captured by theimage capture devices A, B, and C at the same moment being associatedwith different times. For example, an images captured by the imagecapture device A, B, and C at a moment 508 may be associated with timesas follows: the image captured by the image capture device A may beassociated with time of 1:06:00; the image captured by the image capturedevice A may be associated with time of 1:03:00; the image captured bythe image capture device A may be associated with time of 1:05:00.Manually synchronizing the images captured by the image capture devicesA, B, and C may be difficult and/or time consuming.

The images captured by the image capture devices A, B, and C may beautomatically time-synchronized based on exchange of time information ofthe image capture devices A, B, and C. For example, as shown in FIG. 5,the time information of the image capture device A may be transmitted tothe image capture device B at times 1:04:30 and 1:07:30 of the imagecapture device A (once every three minutes). The time information of theimage capture device B may be transmitted to the image capture device Aand to the image capture device B at times 1:03:00 and 1:06:00 of theimage capture device B (once every three minutes). The time informationof the image capture device C may be transmitted to the image capturedevice B at times 1:06:00 and 1:07:10 of the image capture device A(e.g., once every minute and ten seconds). The transmission of timeinformation may occur at other regular and/or irregular time intervals.For example, the transmission of time information may occur at everysecond, with the transmission of time information by different imagecapture devices being staggered in time.

The transmission of time information may include transmission ofinformation on the operating times of the image capture devices,information on the identifiers of the image capture devices, and/orinformation. The identifiers of the image capture devices and thereported times of the image capture devices may be used determine timerelationships between the operating times of the image capture devices.For example, identifiers of the image capture devices and the reportedtimes of the image capture devices may be used determine that the timeof the image capture device A is three minutes (offset of three minutes)later than the time of the image capture device B, and that the time ofthe image capture device C may be two minutes (offset of two minutes)later than the time of the image capture device B.

The identifiers of the image capture devices and the reported times ofthe image capture devices may be used to time-synchronize imagescaptured by the image capture devices. For example, the times associatedwith the images captured by the image capture devices A, B, C may beadjusted to a standard operating time to order the images based on timeof capture.

Longer duration of overlap between capture durations of different imagecapture devices and/or longer duration of overlap in exchange of timeinformation between different image capture devices may provide for moreaccurate and/or more precise time-synchronization of images. Longerduration of overlap may enable time-synchronization of images to accountfor drift in one or more clocks.

In some implementations, an offset between the times of multiple imagecapture devices may be determined based on time synchronizationinformation generated by the multiple image capture devices and/or otherinformation. That is, the time of other image capture devices receivedby different image capture devices may be used to determine the offsetbetween the times of the different image capture devices.

In some implementations, an offset between the times of multiple imagecapture devices may be determined based on an average of multipleoffsets indicated by multiple time synchronization information. Forexample, an image capture device A and an image capture device B may beexchanging their time information. The time synchronization informationgenerated by the image capture device A may indicate that the videocaptured by the image capture device A is fifteen seconds ahead of avideo captured by the image capture device B. The time synchronizationinformation generated by the image capture device B may indicate thatthe video captured by the image capture device B is fourteen secondsbehind the video captured by the image capture device A. That is, thetime synchronization information generated by the image capture device Amay indicate an offset of fifteen seconds while the time synchronizationinformation generated by the image capture device B may indicate anoffset of fourteen seconds. Such difference in offsets may be a reportof propagation delays in exchange of time information. Averaging theoffsets indicated by the different time synchronization information(e.g., an offset of 14.5 seconds) may result in a more accurate timingrelationship between the videos captured by the different image capturedevices.

In some implementations, visual content may include spherical visualcontent. Spherical visual content may refer to image/video capture ofmultiple views from at least one location. Spherical visual content mayinclude a full spherical visual capture (360 degrees of capture) or apartial spherical visual capture (less than 360 degrees of capture).Spherical visual content may be captured through the use of one or morecameras/image sensors to capture images/videos from a location. Forspherical visual content captured using multiple cameras/image sensors,multiple images/videos captured by the multiple cameras/image sensorsmay be stitched together to form the spherical visual content.

Spherical visual content may have been captured at one or morelocations. For example, spherical visual content may have been capturedfrom a stationary position (e.g., a seat in a stadium). Spherical visualcontent may have been captured from a moving position (e.g., a movingbike). Spherical visual content may include image/video capture from apath taken by the capturing device(s) in the moving position. Forexample, spherical visual content may include video capture from aperson walking around in a music festival.

While the present disclosure may be directed to visual content, one ormore other implementations of the system may be configured for othertypes media content. Other types of media content may include one ormore of audio content (e.g., music, podcasts, audio books, and/or otheraudio content), multimedia presentations, images, slideshows, visualcontent (one or more images and/or videos), and/or other media content.

Implementations of the disclosure may be made in hardware, firmware,software, or any suitable combination thereof. Aspects of the disclosuremay be implemented as instructions stored on a machine-readable medium,which may be read and executed by one or more processors. Amachine-readable medium may include any mechanism for storing ortransmitting information in a form readable by a machine (e.g., acomputing device). For example, a tangible computer readable storagemedium may include read only memory, random access memory, magnetic diskstorage media, optical storage media, flash memory devices, and others,and a machine-readable transmission media may include forms ofpropagated signals, such as carrier waves, infrared signals, digitalsignals, and others. Firmware, software, routines, or instructions maybe described herein in terms of specific exemplary aspects andimplementations of the disclosure, and performing certain actions.

Although the processor 11, the electronic storage 13, the image sensor15, the clock 16, the transmitter 17, and the receiver 18 are shown tobe connected to the interface 12 in FIG. 1, any communication medium maybe used to facilitate interaction between any components of system 10.One or more components of system 10 may communicate with each otherthrough hard-wired communication, wireless communication, or both. Forexample, one or more components of system 10 may communicate with eachother through a network. For example, processor 11 may wirelesslycommunicate with electronic storage 13. By way of non-limiting example,wireless communication may include one or more of radio communication,Bluetooth communication, Wi-Fi communication, cellular communication,infrared communication, or other wireless communication. Other types ofcommunications are contemplated by the present disclosure.

Although processor 11 is shown in FIG. 1 as a single entity, this is forillustrative purposes only. In some implementations, processor 11 maycomprise a plurality of processing units. These processing units may bephysically located within the same device, or processor 11 may representprocessing functionality of a plurality of devices operating incoordination. Processor 11 may be configured to execute one or morecomponents by software; hardware; firmware; some combination ofsoftware, hardware, and/or firmware; and/or other mechanisms forconfiguring processing capabilities on processor 11.

It should be appreciated that although computer components areillustrated in FIG. 1 as being co-located within a single processingunit, in implementations in which processor 11 comprises multipleprocessing units, one or more of computer program components may belocated remotely from the other computer program components.

The description of the functionality provided by the different computerprogram components described herein is for illustrative purposes, and isnot intended to be limiting, as any of computer program components mayprovide more or less functionality than is described. For example, oneor more of computer program components may be eliminated, and some orall of its functionality may be provided by other computer programcomponents. As another example, processor 11 may be configured toexecute one or more additional computer program components that mayperform some or all of the functionality attributed to one or more ofcomputer program components described herein.

The electronic storage media of electronic storage 13 may be providedintegrally (i.e., substantially non-removable) with one or morecomponents of system 10 and/or removable storage that is connectable toone or more components of system 10 via, for example, a port (e.g., aUSB port, a Firewire port, etc.) or a drive (e.g., a disk drive, etc.).The electronic storage 13 may include one or more of optically readablestorage media (e.g., optical disks, etc.), magnetically readable storagemedia (e.g., magnetic tape, magnetic hard drive, floppy drive, etc.),electrical charge-based storage media (e.g., EPROM, EEPROM, RAM, etc.),solid-state storage media (e.g., flash drive, etc.), and/or otherelectronically readable storage media. The electronic storage 13 may bea separate component within system 10, or the electronic storage 13 maybe provided integrally with one or more other components of system 10(e.g., processor 11). Although the electronic storage 13 is shown inFIG. 1 as a single entity, this is for illustrative purposes only. Insome implementations, the electronic storage 13 may comprise a pluralityof storage units. These storage units may be physically located withinthe same device, or the electronic storage 13 may represent storagefunctionality of a plurality of devices operating in coordination.

FIG. 2 illustrates method 200 for sharing captured visual content. Theoperations of method 200 presented below are intended to beillustrative. In some implementations, method 200 may be accomplishedwith one or more additional operations not described, and/or without oneor more of the operations discussed. In some implementations, two ormore of the operations may occur substantially simultaneously.

In some implementations, method 200 may be implemented in one or moreprocessing devices (e.g., a digital processor, an analog processor, adigital circuit designed to process information, a central processingunit, a graphics processing unit, a microcontroller, an analog circuitdesigned to process information, a state machine, and/or othermechanisms for electronically processing information). The one or moreprocessing devices may include one or more devices executing some or allof the operation of method 200 in response to instructions storedelectronically on one or more electronic storage mediums. The one ormore processing devices may include one or more devices configuredthrough hardware, firmware, and/or software to be specifically designedfor execution of one or more of the operation of method 200.

Referring to FIG. 2 and method 200, at operation 201, time informationof a first image capture device may be transmitted. Transmission of thetime information of the first image capture device may be independent ofreception of time information of a second image capture device. In someimplementation, operation 201 may be performed by a processor componentthe same as or similar to the transmission component 104 (Shown in FIG.1 and described herein).

At operation 202, time information of the second image capture devicemay be received. In some implementations, operation 202 may be performedby a processor component the same as or similar to the receptioncomponent 102 (Shown in FIG. 1 and described herein).

At operation 203, a first set of image may be captured using the firstimage capture device. The first set of images may be captured during acapture duration. In some implementations, operation 203 may beperformed by a processor component the same as or similar to the capturecomponent 106 (Shown in FIG. 1 and described herein).

At operation 204, time synchronization information for the first set ofimages may be generated based on the time information of the first imagecapture device and the time information of the second image capturedevice. In some implementations, operation 204 may be performed by aprocessor component the same as or similar to the synchronizationcomponent 108 (Shown in FIG. 1 and described herein).

At operation 205, images from the first set of images captured by thefirst image capture device and a second set of images captured by thesecond image capture device may be time-synchronized based on the timesynchronization information. In some implementations, operation 205 maybe performed by a processor component the same as or similar to thesynchronization component 108 (Shown in FIG. 1 and described herein).

Although the system(s) and/or method(s) of this disclosure have beendescribed in detail for the purpose of illustration based on what iscurrently considered to be the most practical and preferredimplementations, it is to be understood that such detail is solely forthat purpose and that the disclosure is not limited to the disclosedimplementations, but, on the contrary, is intended to covermodifications and equivalent arrangements that are within the spirit andscope of the appended claims. For example, it is to be understood thatthe present disclosure contemplates that, to the extent possible, one ormore features of any implementation can be combined with one or morefeatures of any other implementation.

What is claimed is:
 1. An image capture device for synchronizing visualcontent, the image capture device comprising: an image sensor configuredto generate image output signals based on light that becomes incidentthereon, the image output signals conveying image information thatdefines images; a clock configured to provide time of the image capturedevice; one or more processors configured by machine-readableinstructions to: receive time information of another image capturedevice, the time information of the other image capture device includingtime of the other image capture device and an identifier of the otherimage capture device; transmit time information of the image capturedevice, the time information of the image capture device including thetime of the image capture device and an identifier of the image capturedevice; capture a first set of images during a first capture durationbased on the image output signals; and generate first timesynchronization information for the first set of images based on thetime information of the image capture device and the time information ofthe other image capture device; wherein: the other image capture devicecaptures a second set of images during a second capture duration; theother image capture device generates second time synchronizationinformation; an offset between the time of the image capture device andthe time of the other image capture device is determined based on afirst offset indicated by the first time synchronization information anda second offset indicated by the second time synchronizationinformation; multiple images from the first set of images and the secondset of images are time-synchronized based on the offset between the timeof the image capture device and the time of the other image capturedevice; the first capture duration for the first set of images overlapswith the second capture duration for the second set of images; and theoverlap between the first capture duration and the second captureduration is used to account for drift in the clock of the image capturedevice.
 2. The image capture device of claim 1, wherein the firstcapture duration for the first set of images is different from thesecond capture duration for the second set of images.
 3. The imagecapture device of claim 1, wherein time-synchronized images are used togenerate a video edit including images captured by the image capturedevice and the other image capture device.
 4. The image capture deviceof claim 1, wherein transmission of the time information of the imagecapture device is independent of reception, by the image capture device,of the time information of the other image capture device.
 5. The imagecapture device of claim 1, wherein the offset between the time of theimage capture device and the time of the other image capture device isdetermined based on an average of the first offset indicated by thefirst time synchronization information and the second offset indicatedby the second time synchronization information.
 6. The image capturedevice of claim 1, wherein the first time synchronization information isgenerated based on the time of the other image capture device and theidentifier of the other image capture device.
 7. The image capturedevice of claim 1, wherein the first time synchronization information isgenerated based on a difference between the time of the image capturedevice and the time of the other image capture device, and theidentifier of the other image capture device.
 8. The image capturedevice of claim 1, wherein transmission of the time information by theimage capture device and the other image capture device are staggeredsuch that the image capture device transmits the time information of theimage capture device at a first time and the other image capture devicetransmits the time information of the other image capture device at asecond time different from the first time.
 9. A method for synchronizingvisual content, the method performed by an image capture devicecomprising an image sensor and a clock, the image sensor configured togenerate image output signals based on light that becomes incidentthereon, the image output signals conveying image information thatdefines images, the clock configured to provide time of the imagecapture device, the method comprising: receiving time information ofanother image capture device, the time information of the other imagecapture device including time of the other image capture device and anidentifier of the other image capture device; transmitting timeinformation of the image capture device, the time information of theimage capture device including the time of the image capture device andan identifier of the image capture device; capturing a first set ofimages during a first capture duration based on the image outputsignals; and generating first time synchronization information for thefirst set of images based on the time information of the image capturedevice and the time information of the other image capture device;wherein: the other image capture device captures a second set of imagesduring a second capture duration; the other image capture devicegenerates second time synchronization information; an offset between thetime of the image capture device and the time of the other image capturedevice is determined based on a first offset indicated by the first timesynchronization information and a second offset indicated by the secondtime synchronization information; multiple images from the first set ofimages and the second set of images are time-synchronized based on theoffset between the time of the image capture device and the time of theother image capture device; the first capture duration for the first setof images overlaps with the second capture duration for the second setof images; and the overlap between the first capture duration and thesecond capture duration is used to account for drift in the clock of theimage capture device.
 10. The method of claim 9, wherein the firstcapture duration for the first set of images is different from thesecond capture duration for the second set of images.
 11. The method ofclaim 9, wherein time-synchronized images are used to generate a videoedit including images captured by the image capture device and the otherimage capture device.
 12. The method of claim 9, wherein transmission ofthe time information of the image capture device is independent ofreception, by the image capture device, of the time information of theother image capture device.
 13. The method of claim 9, wherein theoffset between the time of the image capture device and the time of theother image capture device is determined based on an average of thefirst offset indicated by the first time synchronization information andthe second offset indicated by the second time synchronizationinformation.
 14. The method of claim 9, wherein the first timesynchronization information is generated based on the time of the otherimage capture device and the identifier of the other image capturedevice.
 15. The method of claim 9, wherein the first timesynchronization information is generated based on a difference betweenthe time of the image capture device and the time of the other imagecapture device, and the identifier of the other image capture device.16. The method of claim 9, wherein transmission of the time informationby the image capture device and the other image capture device arestaggered such that the image capture device transmits the timeinformation of the image capture device at a first time and the otherimage capture device transmits the time information of the other imagecapture device at a second time different from the first time.